package com.xmindguoguo.boot.common.model;

import org.apache.commons.lang.StringUtils;

import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.OperatingSystem;
import eu.bitwalker.useragentutils.UserAgent;
import lombok.Data;

/**
 * 操作boot项目的用户使用的设备信息
 * 
 * @ClassName UserSystemModel
 * @author <a href="892042158@qq.com" target="_blank">于国帅</a>
 * @date 2019年1月30日 下午2:55:13
 * @see eu.bitwalker.useragentutils
 */
@Data
public class UserSystemModel {

    /**
     * client 抓包信息
     */
    private String userAgentStr;

    /**
     * 浏览器名
     * 
     */
    private String browserName;

    /**
     * 浏览器类型
     * 
     */
    private String browserType;

    /**
     * 浏览器家族
     * 
     */
    private String browserGroup;

    /**
     * 浏览器生产厂商
     * 
     */
    private String browserManufacturer;

    /**
     * 浏览器使用的渲染引擎
     * 
     */
    private String browserRenderingEngine;

    /**
     * 浏览器版本
     * 
     */
    private String browserVersion;

    /**
     * 操作系统名
     * 
     */
    private String systemName;

    /**
     * 访问设备类型
     * 
     */
    private String systemDeviceType;

    /**
     * 操作系统家族
     * 
     */
    private String systemGroup;

    /**
     * 操作系统生产厂商
     * 
     */
    private String systemManufacturer;

    /*    public UserSystemModel() {
    
    }*/

    public UserSystemModel(String userAgentStr) {
        this.userAgentStr = userAgentStr;
        if (StringUtils.isNotBlank(userAgentStr)) {
            // 解析agent字符串
            UserAgent userAgent = UserAgent.parseUserAgentString(userAgentStr);
            // 获取浏览器对象
            Browser browser = userAgent.getBrowser();
            // 获取操作系统对象
            OperatingSystem operatingSystem = userAgent.getOperatingSystem();
            this.browserName = browser.getName();
            this.browserGroup = browser.getGroup().toString();
            this.browserType = browser.getBrowserType().toString();
            this.browserManufacturer = browser.getManufacturer().toString();
            this.browserVersion = userAgent.getBrowserVersion().toString();
            this.browserRenderingEngine = browser.getRenderingEngine().toString();
            this.systemName = operatingSystem.getName();
            this.systemDeviceType = operatingSystem.getDeviceType().toString();
            this.systemGroup = operatingSystem.getGroup().toString();
            this.systemManufacturer = operatingSystem.getManufacturer().toString();
        }
    }
//    public static void main(String[] args) {
//        String agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36";
//
//        // 解析agent字符串
//        UserAgent userAgent = UserAgent.parseUserAgentString(agent);
//        // 获取浏览器对象
//        Browser browser = userAgent.getBrowser();
//        // 获取操作系统对象
//        OperatingSystem operatingSystem = userAgent.getOperatingSystem();
//        System.out.println("浏览器名:" + browser.getName());
//        System.out.println("浏览器类型:" + browser.getBrowserType());
//        System.out.println("浏览器家族:" + browser.getGroup());
//        System.out.println("浏览器生产厂商:" + browser.getManufacturer());
//        System.out.println("浏览器使用的渲染引擎:" + browser.getRenderingEngine());
//        System.out.println("浏览器版本:" + userAgent.getBrowserVersion());
//
//        System.out.println("操作系统名:" + operatingSystem.getName());
//        System.out.println("访问设备类型:" + operatingSystem.getDeviceType());
//        System.out.println("操作系统家族:" + operatingSystem.getGroup());
//        System.out.println("操作系统生产厂商:" + operatingSystem.getManufacturer());
//    }

}
